home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1995 #5 & #6 / Amiga Plus CD - 1995 - No. 5 and 6.iso / pd / serien / purity / nr.26 / filereq / aslreq.unit.p < prev    next >
Text File  |  1995-04-23  |  2KB  |  82 lines

  1. UNIT aslreq;
  2.  
  3. {$Projekt MyTools}
  4.  
  5. INTERFACE
  6.   USES Intuition;
  7.  
  8.   TYPE STRING100=STRING[100];
  9.  
  10.   FUNCTION  aslreq(titel:STR; VAR Datei,Pfad:String100;wo:p_window):BOOLEAN;
  11.   FUNCTION  OpenAsl(version : Integer) : BOOLEAN;
  12.   PROCEDURE CloseAsl;
  13.   FUNCTION libversion(versionsnummer:SHORT):BOOLEAN;
  14.  
  15. IMPLEMENTATION
  16.  
  17. {$incl "libraries/asl.h", "asl.lib"}
  18.  
  19. VAR Requ     : p_FileRequester;
  20.     Tags     : ARRAY[0..4] OF TagItem;
  21.  
  22. FUNCTION libversion;
  23.  VAR lib:p_library;
  24.  BEGIN
  25.   lib:=intuitionbase;
  26.   libversion:=(lib^.lib_version>=versionsnummer);
  27.  END;
  28.  
  29.   FUNCTION OpenASL;
  30.   BEGIN
  31.     AslBase := OpenLibrary(ASLNAME,version);
  32.     IF AslBase = NIL THEN OpenAsl := False ELSE OpenAsl := True;
  33.   END;
  34.  
  35.   PROCEDURE CloseASL;
  36.   BEGIN
  37.     IF AslBase <> NIL THEN CloseLibrary(AslBase);
  38.     AslBase := NIL;
  39.   END;
  40.  
  41.  
  42. FUNCTION aslreq;
  43.  
  44.   VAR    p_datei,p_pfad:^STRING100;
  45.  
  46.   BEGIN
  47.       p_datei:=^datei;
  48.       p_pfad :=^pfad;
  49.       aslreq:=FALSE;
  50.       IF OpenASL(36) THEN
  51.       BEGIN
  52.        Tags[0]:=TagItem(ASL_Hail,LONG(titel));
  53.        Tags[1]:=TagItem(ASL_File,LONG(p_datei));
  54.        Tags[2]:=tagItem(ASL_Dir,LONG(p_pfad));
  55.        Tags[3]:=TagItem(ASL_window,LONG(wo));
  56.        Tags[4].ti_tag:=TAG_DONE;
  57.        Requ:=AllocAslRequest(ASL_FileRequest,^Tags);
  58.        IF Requ<>NIL THEN
  59.         BEGIN
  60.          IF aslrequest(Requ,^tags) THEN
  61.           BEGIN
  62.            p_Pfad:=Requ^.rf_Dir;
  63.            pfad:=p_pfad^;
  64.            IF (pfad<>'') AND (pfad[length(pfad)] <> ':')
  65.                          AND (pfad[length(pfad)] <> '/')
  66.            THEN pfad:=pfad+'/';
  67.            p_datei:=Requ^.rf_File;
  68.            datei:=p_datei^;
  69.            aslreq:=TRUE;
  70.           END
  71.          ELSE; {aslreq:=FALSE;}  { Keine Datei angewählt }
  72.         FreeAslRequest(Requ);
  73.         END
  74.         ELSE; { Keine requesterstruktur }
  75.       END
  76.      ELSE; { keine asl.lib }
  77.   END;
  78.  
  79. BEGIN
  80.  aslbase:=NIL;
  81. END.
  82.